import axios from 'axios'
import { ElMessage } from 'element-plus'

// 创建axios实例
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, // 根据环境自动选择baseUrl
  timeout: 60 * 1000 // 超时设置
})

// 请求拦截器
service.interceptors.request.use(
  config => {
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
    const data = response.data
    if (data.code !== 200) {
      ElMessage({
        message: data.data,
        type: 'error',
        center: true
      })
      return Promise.reject(data.data)
    }
    return data.data
  },
  error => {
    // 请求超时或者网络有问题
    if (error.ElMessage.includes('timeout')) {
      ElMessage({
        message: '请求超时！请检查网络是否正常',
        type: 'error',
        center: true
      })
    } else {
      ElMessage({
        message: '请求失败，请检查网络是否已连接',
        type: 'error',
        center: true
      })
    }
    return Promise.reject(error)
  }
)

export default service
